Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme mit einem regulären Ausdruck im VBA-Code -> Laufzeitfehler '5017'
06.08.2021 00:27:51 Klaus
Solved
06.08.2021 08:09:05 Der Steuerfuzzi
Solved
06.08.2021 10:02:36 Gast31212
Solved
06.08.2021 10:19:07 Gast36994
NotSolved
09.08.2021 20:57:14 Klaus
NotSolved
09.08.2021 23:20:18 Gast15604
NotSolved

Ansicht des Beitrags:
Von:
Klaus
Datum:
06.08.2021 00:27:51
Views:
1168
Rating: Antwort:
 Nein
Thema:
Probleme mit einem regulären Ausdruck im VBA-Code -> Laufzeitfehler '5017'

Hallo zusammen,

für eine spezielle Abfrage habe ich folgenden regulären Ausdruck zusammengebastelt bekommen, der auch auf diversen Testseiten im Netz funktioniert (allerdings ohne VBA-Sprachbezug).

Regulärer Ausdruck:

(^123[0-9A-Z]{3}XXXX$)|(^321[0-9A-Z]{3}[A-Z]{4}(?<!XXXX)$)

(Gewünschtes) Ergebnis:

123ABCXXXX
123ABCYYYY
321ABCYYYY
321ABCXXXX

Versuche ich diesen regulären Ausdruck in meinem VBA-Code zu verwenden, erhalte ich immer einen Laufzeitfehler '5017': Die Methode 'Test' für das Objekt 'IRegExp2' ist fehlgeschlagen.

Hier mein VBA-Codeschnipsel:

Option Explicit

Public Sub TestRegExp()

    Dim Text(3) As String
    Text(0) = "123ABCXXXX"
    Text(1) = "123ABCYYYY"
    Text(2) = "321ABCYYYY"
    Text(3) = "321ABCXXXX"
            
    Dim RegEx As RegExp
    Set RegEx = New RegExp
    
    Dim Muster As String
    Muster = "(^123[0-9A-Z]{3}XXXX$)|(^321[0-9A-Z]{3}[A-Z]{4}(?<!XXXX)$)"
    'Muster = "(^123[0-9A-Z]{3}XXXX$)|(^321[0-9A-Z]{3}[A-Z]{4}$)"

    RegEx.Pattern = Muster
    
    Dim i As Integer
    For i = 0 To UBound(Text)
        Debug.Print "Prüfe: " + Text(i) + ", Ergebnis: " + CStr(RegEx.Test(Text(i)))
    Next
    
End Sub

Bei meiner Suche im Netz bin ich auf Hinweise gestoßen, dass VBA evtl. Lookbehind nicht unterstützt und ich suche nun händeringend nach einer Alternative oder Lösung.

Vielen Dank für Eure Antworten, Ideen und Tipps im Voraus.

Viele Grüße

Klaus


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Probleme mit einem regulären Ausdruck im VBA-Code -> Laufzeitfehler '5017'
06.08.2021 00:27:51 Klaus
Solved
06.08.2021 08:09:05 Der Steuerfuzzi
Solved
06.08.2021 10:02:36 Gast31212
Solved
06.08.2021 10:19:07 Gast36994
NotSolved
09.08.2021 20:57:14 Klaus
NotSolved
09.08.2021 23:20:18 Gast15604
NotSolved